package com.zhouhuo.commonutils;

import io.swagger.annotations.ApiModelProperty;
import java.util.HashMap;
import java.util.Map;
import javax.swing.Icon;
import lombok.Data;

/**
 * 请求结果
 * @author zhouhuo
 */
@Data
public class R {

  @ApiModelProperty(value = "是否成功")
  private Boolean success ;

  @ApiModelProperty(value = "响应码")
  private Integer code ;

  @ApiModelProperty(value = "响应消息")
  private String message ;

  @ApiModelProperty(value = "响应数据")
  private Map<String,Object> data = new HashMap<>() ;

  private R() {}

  /**
   * 请求成功的响应
   * @return
   */
  public static R ok() {
    R r = new R() ;
    r.setSuccess(true);
    r.setCode(ResultCode.SUCCESS);
    r.setMessage("成功");
    return r ;
  }

  /**
   * 请求失败的响应
   * @return
   */
  public static R error() {
    R r = new R() ;
    r.setSuccess(false);
    r.setCode(ResultCode.ERROR);
    r.setMessage("失败");
    return r ;
  }

  public R success(Boolean success){
    this.setSuccess(success);
    return this ;
  }


  public R message(String message){
    this.setMessage(message);
    return this ;
  }

  public R code(Integer code){
    this.setCode(code);
    return this;
  }

  public R data(String key,Object value){
    this.data.put(key,value) ;
    return this ;
  }

  public R data(Map<String,Object> map) {
    this.setData(map);
    return this;
  }

}
